﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Thu Vien Them Vao
using QuanLyQuanCafe.DataAccess;
using QuanLyQuanCafe.BusinessObject;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace QuanLyQuanCafe.BusinessLogic
{
    class KhachHangBL
    {
        KetNoiDuLieu connect = new KetNoiDuLieu();

        public DataTable LayDanhSachKhachHang()
        {
            string sql = "SELECT CMND_KH, HoTen, NamSinh, DiaChi, Email, SoDT, GioiTinh, NgheNghiep, SoThich FROM KHACHHANG";
            return connect.LayDanhSachDuLieu(sql);
        }

        //--------------------------Hiêu--------------------------
        public DataTable LayDanhSachKhachHang(string value)
        {
            string sql = "SELECT HoTen, NamSinh, DiaChi, Email, SoDT, GioiTinh, NgheNghiep, SoThich, TongNo FROM KHACHHANG WHERE CMND_KH = '"+value+"'";
            return connect.LayDanhSachDuLieu(sql);
        }
        public bool UpTongNo(string value1, string value2)
        {
            string sql = string.Format("UPDATE KHACHHANG SET TongNo ='{0}' WHERE CMND_KH ='{1}'", value1, value2);
            if (connect.ExecuteQuery(sql))
            {
                MessageBox.Show("Đã Update Lại Tổng Nợ Của Khách Hàng", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return true;
            }
            return false;
        }
        

        //--------------------------Vũ---------------------------
        //Dang Bi Thieu
        public DataTable LayDanhSachTraCuuKhachHang()
        {
            string sql = "SELECT CMND_KH, HoTen, NamSinh, DiaChi, Email, SoDT, GioiTinh, NgheNghiep, SoThich, TongNo FROM KHACHHANG";
            return connect.LayDanhSachDuLieu(sql);
        }

        public DataTable LayKetQuaDanhSachTraCuuKhachHang(KhachHangBO khachhangBO, string namsinhKH, string tongnoKH)
        {
            string sql = string.Format("SELECT CMND_KH, HoTen, NamSinh, DiaChi, Email, SoDT, GioiTinh, NgheNghiep, SoThich, TongNo FROM KHACHHANG"
                + " WHERE CMND_KH LIKE '%{0}%' AND HoTen LIKE N'%{1}%' AND NamSinh LIKE '%{2}%' AND GioiTinh LIKE N'%{3}%' AND DiaChi LIKE N'%{4}%' AND TongNo LIKE '%{5}%'", khachhangBO.CMND_KH, khachhangBO.HoTen, namsinhKH, khachhangBO.GioiTinh, khachhangBO.DiaChi, tongnoKH);
            return connect.LayDanhSachDuLieu(sql);
        }
        //Dang Bi Thieu

        public DataTable LayDanhSachKhachHangTheoHoTen(string hotenKH)
        {
            string sql = string.Format("SELECT CMND_KH, HoTen, NamSinh, DiaChi, Email, SoDT, GioiTinh, NgheNghiep, SoThich FROM KHACHHANG WHERE HoTen LIKE N'%{0}%'", hotenKH);
            return connect.LayDanhSachDuLieu(sql);
        }

        public bool KiemTraCMNDTonTai(string value)
        {
            if (connect.KiemTraGiaTriTonTai("KHACHHANG", "CMND_KH", value))
                return true;
            return false;
        }
        public bool ThemKhachHang(KhachHangBO khachhangBO)
        {
            if (KiemTraTruocKhiLuu(khachhangBO))
            {
                string sql = string.Format("INSERT INTO KHACHHANG (CMND_KH, HoTen, NamSinh, DiaChi, Email, SoDT, GioiTinh, NgheNghiep, SoThich, TongNo)"
                                    + "VALUES ('{0}',N'{1}','{2}',N'{3}','{4}','{5}',N'{6}',N'{7}',N'{8}','0')", khachhangBO.CMND_KH, khachhangBO.HoTen, khachhangBO.NamSinh, khachhangBO.DiaChi, khachhangBO.Email, khachhangBO.SoDT, khachhangBO.GioiTinh, khachhangBO.NgheNghiep, khachhangBO.SoThich);
                if (connect.ExecuteQuery(sql))
                {
                    MessageBox.Show("Thêm Khách Hàng Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }

        public bool SuaKhachHang(KhachHangBO khachhangBO)
        {
            if (KiemTraTruocKhiLuu(khachhangBO))
            {
                string sql = string.Format("UPDATE KHACHHANG SET HoTen = N'{0}', NamSinh = '{1}', DiaChi = N'{2}', Email = '{3}', SoDT = N'{4}', GioiTinh = N'{5}', NgheNghiep = N'{6}', SoThich = N'{7}'"
                                    + "WHERE CMND_KH = '{8}'", khachhangBO.HoTen, khachhangBO.NamSinh, khachhangBO.DiaChi, khachhangBO.Email, khachhangBO.SoDT, khachhangBO.GioiTinh, khachhangBO.NgheNghiep, khachhangBO.SoThich, khachhangBO.CMND_KH);
                if (connect.ExecuteQuery(sql))
                {
                    MessageBox.Show("Sửa Khách Hàng Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }

        public bool XoaKhachHang(string value)
        {
            string sql = string.Format("DELETE FROM KHACHHANG WHERE CMND_KH = '" + value + "'");
            if (connect.ExecuteQuery(sql))
            {
                MessageBox.Show("Xóa Khách Hàng Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return true;
            }
            return false;
        }

        public bool KiemTraTruocKhiLuu(KhachHangBO khachhangBO)
        {
            if ((khachhangBO.CMND_KH.Equals("") || int.Parse(khachhangBO.CMND_KH) < 100000000) || (int.Parse(khachhangBO.CMND_KH) > 999999999))
            {
                MessageBox.Show("Chứng Minh Nhân Dân Phải Gồm Chín Số .", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (khachhangBO.HoTen.Equals(""))
            {
                MessageBox.Show("Họ Tên Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (khachhangBO.NamSinh.Equals(""))
            {
                MessageBox.Show("Năm Sinh Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (khachhangBO.DiaChi.Equals(""))
            {
                MessageBox.Show("Địa Chỉ Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (khachhangBO.GioiTinh.Equals(""))
            {
                MessageBox.Show("Giới Tính Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (khachhangBO.NgheNghiep.Equals(""))
            {
                MessageBox.Show("Công Việc Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (khachhangBO.Email.Equals(""))
            {
                MessageBox.Show("Email Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (khachhangBO.SoThich.Equals(""))
            {
                MessageBox.Show("Sở Thích Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            if (!khachhangBO.SoDT.Equals("") && (float.Parse(khachhangBO.SoDT) < 100000000))
            {
                MessageBox.Show("Số Điện Thoại Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            return true;
        }
    }
}
